import moviepy.editor as mp
import os


def extract_audio_from_video(video_path, output_dir):
    """
    从视频文件中提取音频并保存为 MP3 格式。

    参数：
    video_path (str): 视频文件路径。
    output_dir (str): 音频文件保存的目录。
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    video = mp.VideoFileClip(video_path)
    audio = video.audio
    output_path = os.path.join(output_dir, os.path.splitext(os.path.basename(video_path))[0] + ".mp3")
    audio.write_audiofile(output_path, codec='mp3')
    print(f"音频已成功提取并保存为: {output_path}")


def process_folder(folder_path, output_dir):
    """
    处理文件夹中的所有视频文件，提取音频并保存为 MP3 格式。

    参数：
    folder_path (str): 包含视频文件的文件夹路径。
    output_dir (str): 音频文件保存的目录。
    """
    for file_name in os.listdir(folder_path):
        if file_name.endswith((".mp4", ".mkv", ".avi", ".mov")):  # 可以根据需要添加其他视频格式
            video_path = os.path.join(folder_path, file_name)
            extract_audio_from_video(video_path, output_dir)


# 示例用法
video_folder = "/Users/e/Downloads/政治基础"  # 替换为实际的视频文件夹路径
output_folder = "/Users/e/Downloads/政治基础课 mp3"  # 替换为保存音频文件的文件夹路径
process_folder(video_folder, output_folder)
